package com.seu.me.test.end;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import java.util.List;

/**
 * 个人立案信息
 *
 * @author liangfeihu
 * @since 2019/10/30 14:17
 */
@Data
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
public class ClmInfo {
    private String applyNo;
    private String FinishDate;
    private String FinishTime;
    private String Type;
    private String IssueNo = "";
    private String OutRgtNo;
    private String CASETYPE = "";
    private String BillNum;
    private String OLDCLMNO = "";
    private String CUSTOMERNAME;
    private String IDTYPE;
    private String IDNo;
    private String GENDER;
    private String BIRTHDAY;
    private String CUSTOMERNO;
    private String IDENDDATE = "";
    private String ISLONGVALID = "";
    private String TELPHONE;
    private String REPAINRFLAG = "";
    private String REPAINRREMARK = "";
    private String BANKNO = "";
    private String BANKPROVINCE = "";
    private String BANKCITY = "";
    private String BankType = "";
    private String BANKACCNAME = "";
    private String BANKACCNO = "";
    private String OUTINRGTDATE = "";
    private String OUTENDCLMDATE = "";
    private String materialCode = "";
    private String Email = "";
    private String Zip = "";
    private String type = "";
    private String Relation = "";
    private String claimHandler = "";
    private String emailAccept = "";
    private String reportDate = "";
    private String claimFinishedTime = "";
    private String isOriginal = "";

    private String CONCLUSION = "";
    private String OPTION = "";

    @XmlElement(name = "BnfInfoList")
    private BnfInfoData bnfInfoData;
    @XmlElement(name = "ApplyInfoList")
    private ApplyInfoData applyInfoData;
    @XmlElement(name = "ReportInfoList")
    private ReportInfoData reportInfoData;
    @XmlElement(name = "CaseInfoList")
    private CaseInfoData caseInfoData;
    @XmlElement(name = "ContrlRiskInfo")
    private ContrlRiskInfoData contrlRiskInfoData;

    public ClmInfo(String applyNo, String finishDate, String finishTime, String type, String outRgtNo,
                   String billNum, String CUSTOMERNAME, String IDTYPE, String IDNo, String GENDER, String BIRTHDAY,
                   String CUSTOMERNO, String OUTINRGTDATE, String OUTENDCLMDATE, String materialCode) {
        this.applyNo = applyNo;
        this.FinishDate = finishDate;
        this.FinishTime = finishTime;
        this.Type = type;
        this.OutRgtNo = outRgtNo;
        this.BillNum = billNum;
        this.CUSTOMERNAME = CUSTOMERNAME;
        this.IDTYPE = IDTYPE;
        this.IDNo = IDNo;
        this.GENDER = GENDER;
        this.BIRTHDAY = BIRTHDAY;
        this.CUSTOMERNO = CUSTOMERNO;
        this.OUTINRGTDATE = OUTINRGTDATE;
        this.OUTENDCLMDATE = OUTENDCLMDATE;
        this.materialCode = materialCode;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class BnfInfoData {
        @XmlElements(value = {@XmlElement(name = "BnfInfo", type = BnfInfo.class)})
        List<BnfInfo> bnfInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ApplyInfoData {
        @XmlElements(value = {@XmlElement(name = "ApplyInfo", type = ApplyInfo.class)})
        List<ApplyInfo> applyInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ReportInfoData {
        @XmlElements(value = {@XmlElement(name = "ReportInfo", type = ReportInfo.class)})
        List<ReportInfo> reportInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class CaseInfoData {
        @XmlElements(value = {@XmlElement(name = "CaseInfo", type = CaseInfo.class)})
        List<CaseInfo> caseInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ContrlRiskInfoData {
        private String CRiskScore = "";

        @XmlElement(name = "ContrlRisInfoList")
        private ContrlRisInfoData contrlRisInfoData;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ContrlRisInfoData {
        @XmlElements(value = {@XmlElement(name = "ContrlRisInfo", type = ContrlRisInfo.class)})
        List<ContrlRisInfo> contrlRisInfoList;
    }

}
